<?php
/*
 * Copyright 2007 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

include(BASEPATH.'theme/Theme.php');
/**
 * ThemeManager
 *
 * @package		Redstart
 * @subpackage  Theme
 * @author		Ryan Scheuermann
 * @link		http://www.concept64.com/
 * @link		http://www.springframework.org/
 * @since		Version 1.0
 * @filesource
 */
class ThemeManager {

	var $themesDir = null;

	function ThemeManager() {
		$this->themesDir = APPPATH .'themes/';

	}

	function &loadTheme($name) {
		if(str_ends_with($this->themesDir, '/'))
			$this->themesDir = substr($this->themesDir, 0, strlen($this->themesDir)-1);

		$themeDir = $this->themesDir .'/'.$name.'/';

		if(is_dir($themeDir)) {
			$themeContext = file_exists($themeDir.'/theme-context.yml')?$themeDir.'/theme-context.yml':null;

			if($themeContext) {
				AppContext::load($themeContext);
			}

			$bootstrap = file_exists($themeDir.'/bootstrap'.EXT)?$themeDir.'/bootstrap'.EXT:null;

			if($bootstrap)
				include($bootstrap);

			$theme =& new Theme($name, $themeDir);
			return $theme;
		}

		show_error('ThemeManager', 'Specified theme doesn\'t exist: '.$name);
	}

}

?>
